package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import java.util.Date;

public class RHH_PLANILLA_PREVISION_INDEM {

    private int ID;
    private int ID_USUARIO;
    private Date FECHA_CONTRATACION;
    private Date FECHA_RETIRO;
    private int ANTIGUEDAD_DIA;
    private int ANTIGUEDAD_MES;
    private int ANTIGUEDAD_ANO;
    private String CARGO;
    private int DEPARTAMENTO;
    private int REGIONAL;
    private int SUCURSAL;
    private double SALARIO_MES_1;
    private double SALARIO_MES_2;
    private double SALARIO_MES_3;
    private double TOTAL;
    private double PROMEDIO_SALARIOS;
    private double MONTO_PREVISIONAR;
    private double MONTO_RETROACTIVO;
    private double QUINQUENIOS_COBRADOS;
    private double TOTAL_MONTO_INDEMNIZAR;
    private double TOTAL_MONTO_INDEMNIZAR_RETRO;
    private double TOTAL_MONTO_INDEMNIZAR_MAS_RET;
    private int ID_CABECERA;    
    private Conexion con = null;

    public RHH_PLANILLA_PREVISION_INDEM(Conexion con) {
        this.con = con;
    }

    public RHH_PLANILLA_PREVISION_INDEM(int ID, int ID_USUARIO, Date FECHA_CONTRATACION, Date FECHA_RETIRO, int ANTIGUEDAD_DIA, int ANTIGUEDAD_MES, int ANTIGUEDAD_ANO, String CARGO, int DEPARTAMENTO, int REGIONAL, int SUCURSAL, double SALARIO_MES_1, double SALARIO_MES_2, double SALARIO_MES_3, double TOTAL, double PROMEDIO_SALARIOS, double MONTO_PREVISIONAR, double MONTO_RETROACTIVO, double QUINQUENIOS_COBRADOS, double TOTAL_MONTO_INDEMNIZAR, double TOTAL_MONTO_INDEMNIZAR_RETRO, double TOTAL_MONTO_INDEMNIZAR_MAS_RET, int ID_CABECERA) {
        this.ID = ID;
        this.ID_USUARIO = ID_USUARIO;
        this.FECHA_CONTRATACION = FECHA_CONTRATACION;
        this.FECHA_RETIRO = FECHA_RETIRO;
        this.ANTIGUEDAD_DIA = ANTIGUEDAD_DIA;
        this.ANTIGUEDAD_MES = ANTIGUEDAD_MES;
        this.ANTIGUEDAD_ANO = ANTIGUEDAD_ANO;
        this.CARGO = CARGO;
        this.DEPARTAMENTO = DEPARTAMENTO;
        this.REGIONAL = REGIONAL;
        this.SUCURSAL = SUCURSAL;
        this.SALARIO_MES_1 = SALARIO_MES_1;
        this.SALARIO_MES_2 = SALARIO_MES_2;
        this.SALARIO_MES_3 = SALARIO_MES_3;
        this.TOTAL = TOTAL;
        this.PROMEDIO_SALARIOS = PROMEDIO_SALARIOS;
        this.MONTO_PREVISIONAR = MONTO_PREVISIONAR;
        this.MONTO_RETROACTIVO = MONTO_RETROACTIVO;
        this.QUINQUENIOS_COBRADOS = QUINQUENIOS_COBRADOS;
        this.TOTAL_MONTO_INDEMNIZAR = TOTAL_MONTO_INDEMNIZAR;
        this.TOTAL_MONTO_INDEMNIZAR_RETRO = TOTAL_MONTO_INDEMNIZAR_RETRO;
        this.TOTAL_MONTO_INDEMNIZAR_MAS_RET = TOTAL_MONTO_INDEMNIZAR_MAS_RET;
        this.ID_CABECERA = ID_CABECERA;        
    }       
    
    public int Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_PLANILLA_PREVISION_INDEM (ID, ID_USUARIO, FECHA_CONTRATACION, FECHA_RETIRO, ANTIGUEDAD_DIA, ANTIGUEDAD_MES, ANTIGUEDAD_ANO, CARGO, DEPARTAMENTO, REGIONAL, SUCURSAL, SALARIO_MES_1, SALARIO_MES_2, SALARIO_MES_3, TOTAL, PROMEDIO_SALARIOS, MONTO_PREVISIONAR, MONTO_RETROACTIVO, QUINQUENIOS_COBRADOS, TOTAL_MONTO_INDEMNIZAR, ID_CABECERA, TOTAL_MONTO_INDEMNIZAR_RETRO,TOTAL_MONTO_INDEMNIZAR_MAS_RET) VALUES (" + ID + "," + ID_USUARIO + "," + getFECHA_CONTRATACION_INSERT() + "," + getFECHA_RETIRO_INSERT() + "," + ANTIGUEDAD_DIA + "," + ANTIGUEDAD_MES + "," + ANTIGUEDAD_ANO + ",'" + CARGO + "','" + DEPARTAMENTO + "','" + REGIONAL + "','" + SUCURSAL + "'," + SALARIO_MES_1 + "," + SALARIO_MES_2 + "," + SALARIO_MES_3 + "," + TOTAL + "," + PROMEDIO_SALARIOS + "," + MONTO_PREVISIONAR + "," + MONTO_RETROACTIVO + "," + QUINQUENIOS_COBRADOS + "," + TOTAL_MONTO_INDEMNIZAR + "," + ID_CABECERA + ", "+TOTAL_MONTO_INDEMNIZAR_RETRO+","+TOTAL_MONTO_INDEMNIZAR_MAS_RET+")";
        con.EjecutarSentencia(consulta);
        consulta = "select BROKER.RHH_PLANILLA_PREVISION_IND_SEQ.currval as ID from dual";
        ResultSet rs = con.EjecutarConsulta(consulta);
        rs.next();
        return rs.getInt("ID");
    }

    public boolean Modificar() throws SQLException {
        String consulta = "update BROKER.RHH_PLANILLA_PREVISION_INDEM set ID = " + ID + ",ID_USUARIO = " + ID_USUARIO + ",FECHA_CONTRATACION = " + getFECHA_CONTRATACION_INSERT() + ",FECHA_RETIRO = " + getFECHA_RETIRO_INSERT() + ",ANTIGUEDAD_DIA = " + ANTIGUEDAD_DIA + ",ANTIGUEDAD_MES = " + ANTIGUEDAD_MES + ",ANTIGUEDAD_ANO = " + ANTIGUEDAD_ANO + ",CARGO = '" + CARGO + "',DEPARTAMENTO = '" + DEPARTAMENTO + "',REGIONAL = '" + REGIONAL + "',SUCURSAL = '" + SUCURSAL + "',SALARIO_MES_1 = " + SALARIO_MES_1 + ",SALARIO_MES_2 = " + SALARIO_MES_2 + ",SALARIO_MES_3 = " + SALARIO_MES_3 + ",TOTAL = " + TOTAL + ",PROMEDIO_SALARIOS = " + PROMEDIO_SALARIOS + ",MONTO_PREVISIONAR = " + MONTO_PREVISIONAR + ",MONTO_RETROACTIVO = " + MONTO_RETROACTIVO + ",QUINQUENIOS_COBRADOS = " + QUINQUENIOS_COBRADOS + ",TOTAL_MONTO_INDEMNIZAR = " + TOTAL_MONTO_INDEMNIZAR + ",ID_CABECERA = " + ID_CABECERA + ", TOTAL_MONTO_INDEMNIZAR_RETRO="+TOTAL_MONTO_INDEMNIZAR_RETRO+",TOTAL_MONTO_INDEMNIZAR_MAS_RET="+TOTAL_MONTO_INDEMNIZAR_MAS_RET+" where ID =  " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
   

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_PLANILLA_PREVISION_INDEM where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
    public boolean Eliminar(int id_cabecera) throws SQLException {
        String consulta = "delete from BROKER.RHH_PLANILLA_PREVISION_INDEM where ID_CABECERA = "+id_cabecera;
        con.EjecutarSentencia(consulta);
        return true;
    }

    
    public List<RHH_PLANILLA_PREVISION_INDEM> Buscar(int id_cabecera) throws SQLException {
        String consulta = "select * from BROKER.RHH_PLANILLA_PREVISION_INDEM where ID_CABECERA = "+id_cabecera;
        ResultSet rs = con.EjecutarConsulta(consulta);        
        return Cargar(rs);
    }
    public RHH_PLANILLA_PREVISION_INDEM Buscar(int id_cabecera, int id_usuario) throws SQLException {
        String consulta = "select * from BROKER.RHH_PLANILLA_PREVISION_INDEM where ID_CABECERA = "+id_cabecera+" AND ID_USUARIO = "+id_usuario;
        ResultSet rs = con.EjecutarConsulta(consulta);        
        List<RHH_PLANILLA_PREVISION_INDEM> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }

    public List<RHH_PLANILLA_PREVISION_INDEM> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_PLANILLA_PREVISION_INDEM";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PLANILLA_PREVISION_INDEM> lista = Cargar(rs);
        return lista;
    }

    public List<RHH_PLANILLA_PREVISION_INDEM> Cargar(ResultSet rs) throws SQLException {
        List<RHH_PLANILLA_PREVISION_INDEM> lista = new ArrayList<RHH_PLANILLA_PREVISION_INDEM>();
        while (rs.next()) {
            RHH_PLANILLA_PREVISION_INDEM objeto = new RHH_PLANILLA_PREVISION_INDEM(con);
            objeto.setID(rs.getInt("ID"));
            objeto.setID_USUARIO(rs.getInt("ID_USUARIO"));
            objeto.setFECHA_CONTRATACION(rs.getDate("FECHA_CONTRATACION"));
            objeto.setFECHA_RETIRO(rs.getDate("FECHA_RETIRO"));
            objeto.setANTIGUEDAD_DIA(rs.getInt("ANTIGUEDAD_DIA"));
            objeto.setANTIGUEDAD_MES(rs.getInt("ANTIGUEDAD_MES"));
            objeto.setANTIGUEDAD_ANO(rs.getInt("ANTIGUEDAD_ANO"));
            objeto.setCARGO(rs.getString("CARGO"));
            objeto.setDEPARTAMENTO(rs.getInt("DEPARTAMENTO"));
            objeto.setREGIONAL(rs.getInt("REGIONAL"));
            objeto.setSUCURSAL(rs.getInt("SUCURSAL"));
            objeto.setSALARIO_MES_1(rs.getDouble("SALARIO_MES_1"));
            objeto.setSALARIO_MES_2(rs.getDouble("SALARIO_MES_2"));
            objeto.setSALARIO_MES_3(rs.getDouble("SALARIO_MES_3"));
            objeto.setTOTAL(rs.getDouble("TOTAL"));
            objeto.setPROMEDIO_SALARIOS(rs.getDouble("PROMEDIO_SALARIOS"));
            objeto.setMONTO_PREVISIONAR(rs.getDouble("MONTO_PREVISIONAR"));
            objeto.setMONTO_RETROACTIVO(rs.getDouble("MONTO_RETROACTIVO"));
            objeto.setQUINQUENIOS_COBRADOS(rs.getDouble("QUINQUENIOS_COBRADOS"));
            objeto.setTOTAL_MONTO_INDEMNIZAR(rs.getDouble("TOTAL_MONTO_INDEMNIZAR"));
            objeto.setTOTAL_MONTO_INDEMNIZAR_RETRO(rs.getDouble("TOTAL_MONTO_INDEMNIZAR_RETRO"));
            objeto.setTOTAL_MONTO_INDEMNIZAR_MAS_RET(rs.getDouble("TOTAL_MONTO_INDEMNIZAR_MAS_RET"));
            objeto.setID_CABECERA(rs.getInt("ID_CABECERA"));            
            lista.add(objeto);
        }
        return lista;
    }

    public double getTOTAL_MONTO_INDEMNIZAR_RETRO() {
        return TOTAL_MONTO_INDEMNIZAR_RETRO;
    }

    public void setTOTAL_MONTO_INDEMNIZAR_RETRO(double TOTAL_MONTO_INDEMNIZAR_RETRO) {
        this.TOTAL_MONTO_INDEMNIZAR_RETRO = TOTAL_MONTO_INDEMNIZAR_RETRO;
    }

    public double getTOTAL_MONTO_INDEMNIZAR_MAS_RET() {
        return TOTAL_MONTO_INDEMNIZAR_MAS_RET;
    }

    public void setTOTAL_MONTO_INDEMNIZAR_MAS_RET(double TOTAL_MONTO_INDEMNIZAR_MAS_RET) {
        this.TOTAL_MONTO_INDEMNIZAR_MAS_RET = TOTAL_MONTO_INDEMNIZAR_MAS_RET;
    }   
    
    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    public int getID_USUARIO() {
        return ID_USUARIO;
    }

    public void setID_USUARIO(int ID_USUARIO) {
        this.ID_USUARIO = ID_USUARIO;
    }

    public void setFECHA_CONTRATACION(Date FECHA_CONTRATACION) {
        this.FECHA_CONTRATACION = FECHA_CONTRATACION;
    }

    public String getFECHA_RETIRO() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        if (FECHA_RETIRO != null) {
            return sdf.format(FECHA_RETIRO);
        } else {
            return null;
        }
    }

    public String getFECHA_RETIRO_INSERT() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        if (FECHA_RETIRO != null) {
            return "to_date('" + sdf.format(FECHA_RETIRO) + "','dd/MM/yyyy')";
        } else {
            return "null";
        }
    }
	
	
    public String getFECHA_CONTRATACION() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        if (FECHA_CONTRATACION != null) {
            return sdf.format(FECHA_CONTRATACION);
        } else {
            return null;
        }
    }

    public String getFECHA_CONTRATACION_INSERT() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        if (FECHA_CONTRATACION != null) {
            return "to_date('" + sdf.format(FECHA_CONTRATACION) + "','dd/MM/yyyy')";
        } else {
            return "null";
        }
    }

    public void setFECHA_RETIRO(Date FECHA_RETIRO) {
        this.FECHA_RETIRO = FECHA_RETIRO;
    }

    public int getANTIGUEDAD_DIA() {
        return ANTIGUEDAD_DIA;
    }

    public void setANTIGUEDAD_DIA(int ANTIGUEDAD_DIA) {
        this.ANTIGUEDAD_DIA = ANTIGUEDAD_DIA;
    }

    public int getANTIGUEDAD_MES() {
        return ANTIGUEDAD_MES;
    }

    public void setANTIGUEDAD_MES(int ANTIGUEDAD_MES) {
        this.ANTIGUEDAD_MES = ANTIGUEDAD_MES;
    }

    public int getANTIGUEDAD_ANO() {
        return ANTIGUEDAD_ANO;
    }

    public void setANTIGUEDAD_ANO(int ANTIGUEDAD_ANO) {
        this.ANTIGUEDAD_ANO = ANTIGUEDAD_ANO;
    }

    public String getCARGO() {
        return CARGO;
    }

    public void setCARGO(String CARGO) {
        this.CARGO = CARGO;
    }

    public int getDEPARTAMENTO() {
        return DEPARTAMENTO;
    }

    public void setDEPARTAMENTO(int DEPARTAMENTO) {
        this.DEPARTAMENTO = DEPARTAMENTO;
    }

    public int getREGIONAL() {
        return REGIONAL;
    }

    public void setREGIONAL(int REGIONAL) {
        this.REGIONAL = REGIONAL;
    }

    public int getSUCURSAL() {
        return SUCURSAL;
    }

    public void setSUCURSAL(int SUCURSAL) {
        this.SUCURSAL = SUCURSAL;
    }

    public double getSALARIO_MES_1() {
        return SALARIO_MES_1;
    }

    public void setSALARIO_MES_1(double SALARIO_MES_1) {
        this.SALARIO_MES_1 = SALARIO_MES_1;
    }

    public double getSALARIO_MES_2() {
        return SALARIO_MES_2;
    }

    public void setSALARIO_MES_2(double SALARIO_MES_2) {
        this.SALARIO_MES_2 = SALARIO_MES_2;
    }

    public double getSALARIO_MES_3() {
        return SALARIO_MES_3;
    }

    public void setSALARIO_MES_3(double SALARIO_MES_3) {
        this.SALARIO_MES_3 = SALARIO_MES_3;
    }

    public double getTOTAL() {
        return TOTAL;
    }

    public void setTOTAL(double TOTAL) {
        this.TOTAL = TOTAL;
    }

    public double getPROMEDIO_SALARIOS() {
        return PROMEDIO_SALARIOS;
    }

    public void setPROMEDIO_SALARIOS(double PROMEDIO_SALARIOS) {
        this.PROMEDIO_SALARIOS = PROMEDIO_SALARIOS;
    }

    public double getMONTO_PREVISIONAR() {
        return MONTO_PREVISIONAR;
    }

    public void setMONTO_PREVISIONAR(double MONTO_PREVISIONAR) {
        this.MONTO_PREVISIONAR = MONTO_PREVISIONAR;
    }

    public double getMONTO_RETROACTIVO() {
        return MONTO_RETROACTIVO;
    }

    public void setMONTO_RETROACTIVO(double MONTO_RETROACTIVO) {
        this.MONTO_RETROACTIVO = MONTO_RETROACTIVO;
    }

    public double getQUINQUENIOS_COBRADOS() {
        return QUINQUENIOS_COBRADOS;
    }

    public void setQUINQUENIOS_COBRADOS(double QUINQUENIOS_COBRADOS) {
        this.QUINQUENIOS_COBRADOS = QUINQUENIOS_COBRADOS;
    }

    public double getTOTAL_MONTO_INDEMNIZAR() {
        return TOTAL_MONTO_INDEMNIZAR;
    }

    public void setTOTAL_MONTO_INDEMNIZAR(double TOTAL_MONTO_INDEMNIZAR) {
        this.TOTAL_MONTO_INDEMNIZAR = TOTAL_MONTO_INDEMNIZAR;
    }

    public int getID_CABECERA() {
        return ID_CABECERA;
    }

    public void setID_CABECERA(int ID_CABECERA) {
        this.ID_CABECERA = ID_CABECERA;
    }
   
    public Conexion getCon() {
        return con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }

    
}
